The present disclosure relates generally to information handling systems, and more particularly to providing multiple persistent load balancer information handling systems.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems such as, for example, front end servers, act as load balancers to distribute workloads across multiple computing resources such as, for example, back end servers. For example, front end servers may receive resource requests from client systems and attempt to optimize back end server use, maximize throughput, minimize response times, avoid overload of any particular back end server, and/or provide other load balancing benefits known in the art. In many situations, multiple requests from a client system during a user session should be delivered to the same front end server when that front end server is operating as a persistent load balancer such that it is “stateful” and saves state information about the user session across the multiple requests. Such requests are typically routed by a routing sub-network using a routing strategy (e.g., Equal Cost Multi-Path (ECMP)) employed by routers and/or switches in the routing sub-network that will route those requests to the correct front end server. For example, ECMP routing sub-networks may employ five tuple hashing to route requests to particular front end servers. However, when the routing sub-network changes (e.g., via a change associated with a link, switch, switch configuration, hash parameter, etc.), the routing strategy may send those requests to an incorrect front end server (i.e., a front end server that does not include the state information for the user session associated with that request). In such situations, conventional systems (e.g., the conventional ECMP routing sub-networks that employ five tuple hashing) require that the connection/user session be reset and the client system reconnect to a new front end server.
One solution to this problem is to provide only a single persistent/stateful front end server in the system. However, such solutions are not feasible in any large scale system. Another solution requires each of the plurality of front end servers acting as persistent load balancers to synchronize state information about user sessions with each other. However, such solutions push the burden of storing state information for every user session to each of the front end servers, introduce latencies, and present barriers to scaling the system up. Another solution pushes the burden of tracking user sessions to the switches in the routing sub-network, introduce similar latencies and barriers to scaling the system up. Finally, another solution requires client systems to supply state information with each request to relieve the front end-servers from acting as persistent load balancers.
Accordingly, it would be desirable to provide an improved multiple persistent load balancer system